﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using ICE.Vacations.Datos.SQL_Manager;
using ICE.Vacations.Datos.Oracle_Manager;

using ICE.Vacations.Entidades;

namespace ICE.Vacations.Logica.Users
{
    public static class UsersManager
    {
        private static Recurso usuario=null;
        public static string userIP { get; set; }
        private static List<Recurso> lista = null;
        private static string capcha="";


        public static void deleteCapcha()
        {
            capcha = "";
        }
        public static string getCapcha()
        {
            return capcha;
        }

        public static string getTypeUser(string userName)
        {
            if(usuario==null)
                usuario = SQLDataClass.buscar(userName.Split('\\')[1])[0];

            return usuario.tipo;
        }

        //public static Recurso getRecurso()
        //{
        //    return usuario;
        //}

        public static List<Recurso> getTodosRecursos()
        {
            return lista;
        }

        public static Recurso getRecurso(string userName)
        {          
                usuario=SQLDataClass.buscar(userName.Split('\\')[1])[0];

            return usuario;
        }

        public static Recurso getOtroRecurso(string cedula)
        {
            return SQLDataClass.buscar_empleado(cedula);

        }

        public static int getTodosDiasDisponibles(){
            return  OracleDataClass.getDiasDisponibles(usuario.cedula);         
        }


        public static void sendCapcha(string user)
        {
            Random random = new Random();
            for (int i = 0; i < 4; i++)
            {
                
                int type = random.Next(0, 3);
                switch (type)
                {
                    case 1://mayusculas
                        {
                            capcha += Convert.ToChar(random.Next(65, 91)).ToString();
                        } break;
                    case 2://minusculas
                        {
                            capcha += Convert.ToChar(random.Next(97, 123)).ToString();
                        } break;
                    case 3://numeros
                        {
                            capcha += Convert.ToChar(random.Next(48, 58)).ToString();
                        } break;
                }
            }
            Recurso rec = getRecurso(user );
            Datos.FileManager.EntityToFile.SendSmtpMail(capcha, rec.email, rec.nombre + "  " + rec.apellido1 + "  " + rec.apellido2);

            
        }

        public static List<Recurso> getTodosUsuarios()
        {
            lista=SQLDataClass.buscar();
            return lista;
        }

        public static List<Recurso> getTodosUsuarios(string campo,string valor)
        {          
            lista = SQLDataClass.buscar(campo,valor);
            return lista;
        }

    }
}
